package com.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.bean.AlunoBean;

public class AlunoDao {

	public static final String TABELA = "aluno";

	public static final String COLUNA_ALU_UNI_ID = "uni_id";
	public static final String COLUNA_ALU_ID = "alu_id";
	public static final String COLUNA_ALU_NOME = "alu_nome";
	public static final String COLUNA_ALU_NUMERO = "alu_numero";

	public long insert(SQLiteDatabase escola, AlunoBean alunoBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_ALU_UNI_ID, alunoBean.getUnidade().getId());
		valores.put(COLUNA_ALU_NOME, alunoBean.getNome());
		valores.put(COLUNA_ALU_NUMERO, alunoBean.getNumero());

		return escola.insert(TABELA, null, valores);

	}

	public long update(SQLiteDatabase escola, AlunoBean alunoBean){

		ContentValues valores = new ContentValues();
		valores.put(COLUNA_ALU_NOME, alunoBean.getNome());
		valores.put(COLUNA_ALU_NUMERO, alunoBean.getNumero());

		return escola.update(TABELA, valores, COLUNA_ALU_UNI_ID + " = " + alunoBean.getUnidade().getId() + 
				" AND " + COLUNA_ALU_ID + " = " + alunoBean.getId(), null);

	}

	public boolean delete(SQLiteDatabase escola, AlunoBean aluno){
		return escola.delete(TABELA, COLUNA_ALU_UNI_ID + " = " + aluno.getUnidade().getId() +
				" AND " + COLUNA_ALU_ID + "=" + aluno.getId(), null) > 0;
	}

	public AlunoBean buscaPorCodigo(SQLiteDatabase escola, long unidade, long rowId){

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_ALU_UNI_ID + "=" + unidade );
		sql.append("    AND "+ COLUNA_ALU_ID + "=" + rowId);

		AlunoBean alunoBean = new AlunoBean();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		if(cursor.getCount() > 0){

			alunoBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_UNI_ID)));
			alunoBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_ID)));
			alunoBean.setNome(cursor.getString(cursor.getColumnIndex(COLUNA_ALU_NOME)));
			alunoBean.setNumero(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_NUMERO)));

			cursor.close();

			return alunoBean;

		}

		else{

			cursor.close();
			return null;

		}

	}
	
	public List<AlunoBean> getAll(SQLiteDatabase escola, long unidadeId){

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT * ");
		sql.append("   FROM " + TABELA );
		sql.append("  WHERE "+ COLUNA_ALU_UNI_ID + "=" + unidadeId );

		List<AlunoBean> alunoList = new ArrayList<AlunoBean>();

		Cursor cursor = escola.rawQuery(sql.toString(), null);

		while(cursor.moveToNext()){

			AlunoBean alunoBean = new AlunoBean();

			alunoBean.getUnidade().setId(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_UNI_ID)));
			alunoBean.setId(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_ID)));
			alunoBean.setNome(cursor.getString(cursor.getColumnIndex(COLUNA_ALU_NOME)));
			alunoBean.setNumero(cursor.getInt(cursor.getColumnIndex(COLUNA_ALU_NUMERO)));

			alunoList.add(alunoBean);

		}

		cursor.close();
		return alunoList;

	}

}
